using UnityEngine;
using System.Collections.Generic;
using System.Linq;
using UnityEngine.SceneManagement;
using Photon.Pun;

public class GameManager : Singleton<GameManager>
{
    [Header("地图相机")]
    public GameObject MapCamera;
    [Header("玩家预置")]
    public GameObject PlayerPrefab;
    [Header("敌人预置")]
    public GameObject enemyPrefab;
    // 菜单场景的主画布
    public GameObject mainCanvas;
    protected override void Awake()
    {
        base.Awake();

        DontDestroyOnLoad(this);
    }
    public void CreateLevel(int i)
    {
        if (i > 0)
        {
            // 加载场景后，准备生成迷宫
            // InitMaze.Instance.WallColumnParent = GameObject.Find("WallColumnParent");
            // InitMaze.Instance.RoomParent = GameObject.Find("RoomParent");
            // InitMaze.Instance.BuildRow = i * 4;
            // InitMaze.Instance.BuildColumn = i * 4;

            // 设置地面的宽高和缩放 对齐中心点并拉伸 pos 10 0 10 scale 20 1 20
            var land = GameObject.Find("Land").transform;
            land.localScale = new Vector3(20 * i, 1, 20 * i);
            land.position = new Vector3(10 * i, 0, 10 * i);

            // 创建当前关卡的迷宫
            // InitMaze.Instance.CreateMaze();
            // InitMaze.Instance.BreakWall();

            // 创建用于显示地图的平面相机
            var camera = Instantiate(MapCamera);
            // 移动到合适位置
            camera.transform.position = Vector3.up * 100 + land.position;
            camera.transform.eulerAngles = new Vector3(90, 0, 0);
            // 根据迷宫生成参数 调整相机视图大小
            camera.GetComponent<Camera>().orthographicSize = Mathf.Max(10 * i, 10 * i);

            // 本地生成 玩家1
            // var player = Instantiate(PlayerPrefab);
            // 玩家1 小地图相机
            // player.GetComponent<PlayerController>().MapCamera = camera.GetComponent<Camera>();
            
            // 网络生成 玩家士兵1
            PhotonNetwork.Instantiate(this.PlayerPrefab.name, Vector3.one, Quaternion.identity, 0);

            // 设置地图相机的 rendertexture size 可以调整地图缩略图大小

            // 在随机房间生成敌人
            var enemy = Instantiate(enemyPrefab);
            // enemy.transform.position = InitMaze.Instance.RoomList[Random.Range(0, InitMaze.Instance.RoomList.Count)].transform.position;
        }
    }
}
